package 剑指Offer.简单;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
 *
 * 示例 1:
 *
 * 输入：s = "abaccdeff"
 * 输出：'b'
 * 示例 2:
 *
 * 输入：s = "" 
 * 输出：' '
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/di-yi-ge-zhi-chu-xian-yi-ci-de-zi-fu-lcof
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 * @author caihe
 * @date 2022/8/26 9:01
 */
public class _50第一个只出现一次的字符 {

    public char firstUniqChar(String s) {
        Map<Character, Boolean> map = new LinkedHashMap<>();
        for (char c : s.toCharArray()) {
            // 如果c存在map中 则value设置为false
            map.put(c, !map.containsKey(c));
        }
        for (Character c : map.keySet()) {
            if (map.get(c)) {
                return c;
            }
        }
        return ' ';
    }
    
}
